導航:首頁 > 編程語言 > jsscroller插件

jsscroller插件

發布時間:2023-07-04 17:42:07

A. vue-scroller記錄滾動位置的示例代碼

問題描述:
列表頁進入詳情頁,或者tab頁切換,然後再返回列表頁,希望能切換到之前滾動位置
解決問題思路:
切換到其他頁面前記錄位置,返回列表頁的時候返回位置。這就需要藉助vue-router的beforeRouteEnter和beforeRouteLeave這兩個鉤子去實現.
還有一種更簡單粗暴的方法,
vue-scroller.min.js源碼中添加寬高不為零判斷,實現方式見評論,是最近代碼優化的時候發現的。
代碼部分:
beforeRouteEnter(to,from,next){
if(!sessionStorage.askPositon
||
from.path
==
'/'){//當前頁面刷新不需要切換位置
sessionStorage.askPositon
=
'';
next();
}else{
next(vm
=>
{
if(vm
&&
vm.$refs.scrollerBottom){//通過vm實例訪問this
setTimeout(function
()
{
vm.$refs.scrollerBottom.scrollTo(0,
sessionStorage.askPositon,
false);
},0)//同步轉非同步操作
}
})
}
},
beforeRouteLeave(to,from,next){//記錄離開時的位置
sessionStorage.askPositon
=
this.$refs.scrollerBottom
&&
this.$refs.scrollerBottom.getPosition()
&&
this.$refs.scrollerBottom.getPosition().top;
next()
},
需要注意的點:
1.熟悉vue-router和vue-scroller的api
2.beforeRouteEnter的時候,是無法通過this去訪問vue實例的,需要藉助於vm
3.setTimeout
0
的使用
等下周發版的時候,我貼上鏈接,可以體驗下效果
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:詳解使用vue-router進行頁面切換時滾動條位置與滾動監聽事件解決Vue頁面固定滾動位置的處理辦法vue實現某元素吸頂或固定位置顯示(監聽滾動事件)

B. 如何在JavaScript里防止事件函數的高頻觸發和調用

throttle節流閥技術可以防止事件函數(例如滾輪滾動)的回調函數被頻繁調用。

節流閥函數的實現原理是:

節流函數每次執行時都會檢查上次執行的時間,通過指定wait參數,來保證只有距離上次執行超過一定時間,才會真正執行內部包裹的回調函數。由此來避免一種重量級的函數(如重繪或者dom操作)被頻繁調用而導致產生性能問題。

以underscore.js的實現為例

varscroller=document.getElementById('scroller_div');
//此時console.log最多每300毫秒列印一次,不管onscroll事件觸發得多麼頻繁,都不會超過這個頻率。
scroller.onscroll=_.throttle(function(){
console.log(scroller.scrollTop);
},300);

C. jquery mobiscroll插件怎樣阻止冒泡

這個不是冒泡,這個是android的默認瀏覽器webbiew的bug,穿透浮層點擊,只能在確定之前固定一個狀態,確定後取消,現在這個bug沒修復

D. 求上下浮動的圖片在指定的區域內隨瀏覽器上下滾動的js代碼

關鍵代碼:
main-left:左側參照DIV;
main-right:要浮動的;
div.top-box:頁面頂部的Fixed層;

$(document).ready(function(){
$(window).scroll(function(){
var
leftTop=$("#main-left").offset().top;
varrightTop=
$("#main-right").offset().top;
varscrollerTop=$(this).scrollTop()+
$("div.top-box").height();
if(scrollerTop>leftTop){
if
(scrollerTop+$("#main-right").height()<leftTop+
$("#main-left").height()){
if($("#main-right").css("position")!=
"fixed"){
$("#main-right").css({"position":"fixed",
"left":$("#main-right").offset().left+"px","top":$("div.top-box").height()+
"px"});
}
}else{
$("#main-right").css({"position":"fixed",
"left":$("#main-right").offset().left+"px","top":($("div.top-box").height()-
(scrollerTop+$("#main-right").height()-(leftTop+$("#main-left").height()))
)+"px"});
}
}else{
if($("#main-right").css("position")!=
"static"){
$("#main-right").css({"position":"static"});
}
}
});
});

閱讀全文

與jsscroller插件相關的資料

熱點內容
日語小說app推薦 瀏覽:216
如何看發放中視頻的數據 瀏覽:175
醫療數據是什麼 瀏覽:885
旅遊找什麼網站好 瀏覽:391
java猜數字游戲實訓總結 瀏覽:27
怎麼加入新華網的學習網站 瀏覽:26
反恐行動升級包 瀏覽:180
隱藏在電腦桌面的文件怎麼顯示 瀏覽:313
一鍵還原文件被刪除如何恢復 瀏覽:503
安卓dex文件修改 瀏覽:392
插入的pdf文件怎麼更改圖標 瀏覽:228
金華網站怎麼製作動態照片 瀏覽:704
javaparcelable 瀏覽:499
酷安app下載文件在哪裡找 瀏覽:913
微信可以發給自己文件嗎 瀏覽:449
哪個視頻網站被約談了 瀏覽:74
在vb連接mysql資料庫 瀏覽:992
一起作業家長通安卓版 瀏覽:327
nero文件名長度 瀏覽:714
word數學公式編號模板 瀏覽:588

友情鏈接