借用一下喜馬拉雅的效果圖,比較一下下面的遮罩層的高度:
我們可以看到它的遮罩層一直都是只遮住的下面。開始想着怎么用CSS實現,幾經測試也沒弄出來,如果正在看這篇文章的你,知道如何用CSS達到這種效果,歡迎留言。
我來說一下我用js的解決方法。
原理很簡單,遮罩層高度 = 選集彈層的下邊距離 到 窗口底邊的距離。
先看下結構:
實現效果核心代碼:
$(".js_show_chapter").click(function () { var maskHeight; var obj = $('.js_chapter_wrap'); var wh = $(window).height();//窗口高度 var objOffsetTop = obj.offset().top; //選集彈層到頂部的距離 var docScrollTop = $(document).scrollTop();//滾動條到頂部的距離 maskHeight = wh - (objOffsetTop - docScrollTop);//計算遮罩層高度 $(".mask").height(maskHeight + 'px'); })
最后顯示效果如下圖:
需要完整案例的可在下方留言~感謝閱讀~