|
@@ -114,6 +114,7 @@ const App = {
|
|
dataType: 'json',
|
|
dataType: 'json',
|
|
url: window.FQDN2 + 'siteCategory/siteCategoryList',
|
|
url: window.FQDN2 + 'siteCategory/siteCategoryList',
|
|
}).done(function (res) {
|
|
}).done(function (res) {
|
|
|
|
+ _this.lazyFunc()
|
|
_this.columnList = res.data;
|
|
_this.columnList = res.data;
|
|
let expires = Date.now() + 1000 * 60 * 30; //半小时过期时间
|
|
let expires = Date.now() + 1000 * 60 * 30; //半小时过期时间
|
|
localStorage.setItem('storeColumnList', JSON.stringify({
|
|
localStorage.setItem('storeColumnList', JSON.stringify({
|
|
@@ -265,6 +266,7 @@ const App = {
|
|
url: window.FQDN2 + 'siteArticle/siteArticleList',
|
|
url: window.FQDN2 + 'siteArticle/siteArticleList',
|
|
data: requestParams
|
|
data: requestParams
|
|
}).done(function (res) {
|
|
}).done(function (res) {
|
|
|
|
+ _this.lazyFunc()
|
|
var aa
|
|
var aa
|
|
var bb
|
|
var bb
|
|
|
|
|
|
@@ -316,14 +318,44 @@ const App = {
|
|
|
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
+ lazyFunc:function(){
|
|
|
|
+ setTimeout(function(){
|
|
|
|
+ // 1 获取全部图片的DOM节点
|
|
|
|
+ // 注意:querySelectorAll 值为伪数组利用扩展运算符转为真数组
|
|
|
|
+ const images = $('.lazyContainer img')
|
|
|
|
+ console.log(images)
|
|
|
|
+ // 2 监听页面滚动事件
|
|
|
|
+ window.addEventListener('scroll', lazyLoad)
|
|
|
|
+ // 3 定义页面滚动的处理函数
|
|
|
|
+ function lazyLoad(){
|
|
|
|
+ for (let i = 0; i < images.length; i++) {
|
|
|
|
+ // isVisible是否该图片位于可视区域 返回true 或false
|
|
|
|
+ if (isVisible(images[i])) {
|
|
|
|
+ // 将元素的自定义属性 data-src 赋值给元素的 src 属性
|
|
|
|
+ // dataset.src 此为元素的自定义属性 data-src
|
|
|
|
+ images[i].src = images[i].dataset.src // 等价于:img.setAttribute('src', img.getAttribute('data-src'))
|
|
|
|
+ // 防止重复被遍历 加载完之后 删除元素不再加载
|
|
|
|
+ images.splice(i, 1)
|
|
|
|
+ i--
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ lazyLoad()
|
|
|
|
+ // 4 可视区域判断函数
|
|
|
|
+ function isVisible(img) {
|
|
|
|
+ // 判断是否在可视区域
|
|
|
|
+ const imgRect = img.getBoundingClientRect() // getBoundingClientRect 获取图片的动态信息
|
|
|
|
+ return imgRect.bottom > 0 && imgRect.top < window.innerHeight && imgRect.right > 0 && imgRect.left < window.innerWidth
|
|
|
|
+ }
|
|
|
|
+ },100)
|
|
|
|
+ },
|
|
|
|
+
|
|
//弹框显示隐藏(子组件向父组件传值)
|
|
//弹框显示隐藏(子组件向父组件传值)
|
|
handleChildEvent: function (value) {
|
|
handleChildEvent: function (value) {
|
|
this.centerDialogVisible = value; // 处理从子组件接收到的数据
|
|
this.centerDialogVisible = value; // 处理从子组件接收到的数据
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
// 排序
|
|
// 排序
|
|
compare(property) {
|
|
compare(property) {
|
|
return function (a, b) {
|
|
return function (a, b) {
|