js操作

1、使用mouseenter滑过时出现的闪烁问题
问题:滑过某一元素时,元素下方出现一个遮罩层,滑出隐藏,但是遮罩层有时候会闪烁
分析:遮罩层出来后,如果鼠标放在遮罩层上,就离开了原来的元素,触发了mouseleave事件,但是此时遮罩层也随之消失,同时鼠标又放在了元素上,又立刻触发 mouseenter事件,遮罩层又出现,如此往复,就出现了闪烁的效果……
解决:在遮罩层的样式上加上一个样式{pointer-events: none;}
属性介绍:允许元素不接收悬停/单击事件,而事件将发生在其后面的任何内容上。
阻止用户的点击动作产生任何效果
阻止缺省鼠标指针的显示
阻止CSS里的hover和active状态的变化触发事件
阻止JavaScript点击动作触发的事件
注意事项:
子元素可以声明pointer-events来解禁父元素的阻止鼠标事件限制。
如果你对一个元素设置了click事件监听器,然后你移除了pointer-events样式声明,或把它的值改变为auto,监听器会重新生效。基本上,监听器会遵守pointer-events的设定。

2、判断页面是否有滚动条

function hasScrollbar() {
    return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight);
}

返回true就是有,返回false就是没有

获取某元素内滚动条的高度:$(dom).scrollTop()

设置某元素内滚动条的高度:$(dom).scrollTop(90)

获取页面滚动条的高度:$(document).scrollTop()

实时获取页面滚动条操作:

$(document).scroll(function(){   //页面加载时,获取滚动条初始高度
  var distance = $(document).scrollTop();  //获取滚动条初始高度的值 :0
   console.log(distance); //打印滚动条不同高度的位置的值

  if(distance == 0) {  //当滚动条高度为0时
    removeActive('.Creative')  //移除某某css
  } else {
    shakeActive('.Creative')   //添加某某css
  }

})

3、滑动到顶部操作

  1. 设置滚动条高度为0即可
$('html').scrollTop(0);
$('html').animate({scrollTop:'0px'}, 500);
  1. 延伸出来的可以是:点击某个按钮,界面滑动到具体的位置:还是设置滚动条的位置即可

1)顶部没有其他的元素
可以用a标签的锚点操作
可以用设置滚动条的位置
2)顶部除了滑动的文档,还有其他的元素
如果用锚点操作需要刨除顶部元素的位置,比较麻烦
==>所以这种还是设置滚动条的位置更好

获取距离父级的高度,把这个高度设置给滚动条即可
var oneTop = $("dom").offset().top;
$('html').animate({scrollTop: oneTop+'px'}, 500);

补充:

div没定位时距离父级的距离:$(dom).offset().top / left
div有定位时距离父级的距离:$(dom).position().top / left【div有定位,绝对定位】
//滚动到底部 
var h = $(document).height()-$(window).height(); 
$(document).scrollTop(h);

4、判断是第一次打开界面还是刷新

if(!window.name){
    alert("第一次开这个窗口!name值"+ window.name);
    window.name = 'test';
 
}else{
    alert('刷新操作 name值:'+ window.name);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值