实现超出的内容可以左右滚动

   日期:2020-10-10     浏览:105    评论:0    
核心提示:因项目需求,需要超出的内容可以左右滚动,未限制实现方法

因项目需要,实现超出的内容可以左右滚动。未限制实现方法,在查阅资料的情况下找到两种方法可以满足。

方法一: 使用鼠标拖动内容进行滚动

具体实现:
通过mousedown、mousemove、mouseup结合,改变定位的left属性实现。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <style> body{  position: relative; margin:0; padding:0; width:100%; height: 1000px; } #box{  height: 50px; width:200px; position: absolute; left:50%; top:50%; margin-left:-200px; margin-top:-200px; background: #CDCDCD; } #small-box{  height: 50px; width:50px; position: absolute; left:0; top:0; background: #FF66CC; cursor:move ; opacity: 0.7; } </style>
</head>
<body>
    <div id="box">
        <div id="small-box"></div>
    </div>
<script> var box=$("#small-box"); var body=$('body'); var index=0; var x1; box.mousedown(function(){  index=1; //鼠标按下才能触发onmousemove方法 var x=event.clientX; //鼠标点击的坐标值,x var left= this.style.left; left=left.substr(0,left.length-2); //去掉px x1=parseInt(x-left); }); box.mousemove(function(){  if(index===1){  this.style.left=event.clientX-x1+'px'; if(this.style.left.substr(0,this.style.left.length-2)<0){  this.style.left=0; }; if(this.style.left.substr(0,this.style.left.length-2)>150){  this.style.left='150px'; }; } }); box.mouseup(function(){  index=0; }); body.mouseup(function(){  index=0; }); </script>
</body>
</html>

相关链接:
https://blog.csdn.net/rovast/article/details/79872111
https://blog.csdn.net/llllvvv/article/details/79928707

结果:未实现。当前实例中没有使用定位

方法二:使用鼠标滚轮代替滚动条滚动

具体实现:
通过mousewheel事件,改变scrollLeft滚动条到最左边的距离

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style> body,html{  position: relative; margin:0; padding:0; width:100%; height: 100%; } #box{  height: 50px; width:300px; position: absolute; left:50%; top:50%; transform: translate(-50%); background: #CDCDCD; overflow: hidden; } #small-box{  white-space: nowrap; } </style>
</head>
<body>
  <div id="box">
    <div id="small-box">内容溢出1内容溢出2内容溢出3内容溢出4内容溢出5内容溢出6内容溢出7内容溢出8内容溢出9内容溢出10内容溢出11</div>
  </div>
  <script> let box = document.querySelector("#box") // 由于不同的浏览器所兼容的函数不同,所以需要首先判断浏览器类型,再按照不同浏览器写不同的函数 let explorer =navigator.userAgent; let isIE = navigator.userAgent.match(/MSIE (\d)/i); isIE = isIE ? isIE[1] : undefined; if (isIE < 9) {  //传统浏览器使用MouseWheel事件 container.attachEvent("onmousewheel", function (e) {  //计算鼠标滚轮滚动的距离 //一格3行,每行40像素 let v = e.wheelDelta / 2; container.scrollLeft += v; //阻止浏览器默认方法 return false; }) } if(explorer.indexOf("Firefox") >= 0){  box.addEventListener("DOMMouseScroll",function(){  //计算鼠标滚轮滚动的距离 box.scrollLeft += event.detail * 40; //阻止浏览器默认方法 event.preventDefault(); }, false) }else{  box.addEventListener("mousewheel",function(){  //计算鼠标滚轮滚动的距离 let v = -event.wheelDelta / 2; box.scrollLeft += v; //阻止浏览器默认方法 event.preventDefault(); }, false) } </script>
</body>
</html>

相关链接:
https://blog.csdn.net/chenyinquan9211/article/details/80603721

结果:实现

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服