亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GSAP 3 ScrollTrigger 不適用于動態變化的值(不刷新/重新計算)

GSAP 3 ScrollTrigger 不適用于動態變化的值(不刷新/重新計算)

慕娘9325324 2023-07-06 17:49:14
我在使用 GSAP 的 ScrollTrigger 時遇到問題。我在不同的視口寬度中設置了固定元素的高度,并且在調整窗口大小時效果很好。但現在我想通過單擊按鈕來更改固定元素的高度。我使用ScrollTrigger.refresh();但沒有任何反應。有人可以告訴我如何修復它嗎?ScrollTrigger.create({  trigger: '.box',  pin: true,  start: 'top center',  end: () => `+=${$('.h-500').height() - $('.box').height()}`,  markers: true,  id: "box",  onRefreshInit: () => {  },  onRefresh: () => {  }});function resizeBox(){  $('.box').css('height', '50px');  ScrollTrigger.refresh();}body{  margin: 0;}.space {  width: 100%;}.h-500 {  height: 500px;  background: yellow;}.h-1000 {  height: 1000px;}.box {  width: 100px;  height: 100px;  background: red;}button {  position: fixed;  top: 0;  right: 0;  z-index: 999;  font-size: 20px;}@media only screen and (max-width: 600px) {  .box {    height: 5vw;  }}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><script src="https://unpkg.com/gsap@3/dist/ScrollTrigger.min.js"></script><script src="https://unpkg.co/gsap@3/dist/gsap.min.js"></script><div class="space h-1000"></div><div class="space h-500">  <div class="box"></div></div><div class="space h-1000"></div><button onclick="resizeBox()">resizeBox</button>
查看完整描述

1 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

這是一個有點棘手的情況,因為您正在調整固定的同一元素的大小。ScrollTrigger 會自動緩存維度等,因此當刷新發生時,ScrollTrigger 會清除所有內聯樣式(這恰好會清除您設置的新值),然后恢復到其緩存狀態。我們(GreenSock)尚未確定這是否是一個錯誤:)


至于目前如何解決這種情況,您可以在盒子周圍創建一個空容器并將其固定:


<div class="pin-container">

  <div class="box"></div>

</div>

trigger: ".pin-container"

演示


查看完整回答
反對 回復 2023-07-06
  • 1 回答
  • 0 關注
  • 294 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號