js水平自定义滚动,实现拖动效果

【html】

<div class="page" style="width:1200px;overflow:hidden">
  <ul class="width:1600px;height: 166px; position: absolute;width: 100%;left: 0;"></ul>
  <p class="scrollbar">
    <span style="width: 896.638px; transform: translateX(303px);"></span>
  </p>
</div>

【jq】

var sbarbox = $(".page .scrollbar");
var sbar = sbarbox.find("span");
var sbox = $(".page")//容器
var sul = sbox.find("ul");//内容
var sbarw = parseFloat(sbox.width() / sul.width()) * sbox.width();//滚动条宽度 =(容器宽度/内容宽度)*容器宽度
sbar.width(sbarw);
var ismove = false;
//滚动条 按下可以滑动
sbarbox.mousedown(function (event) {
  ismove = true;
  var donwX = event.clientX;//鼠标初始位置
  var tranX = sbar.css("transform").replace(/[^0-9\-,]/g, '').split('
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现环形滚动条,可以使用 HTML、CSS 和 JavaScript。下面是一份基本的实现代码: HTML: ``` <div class="scrollbar"> <div class="track"> <div class="thumb"></div> </div> </div> ``` CSS: ``` .scrollbar { width: 200px; height: 200px; position: relative; overflow: hidden; } .track { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 8px; height: 100%; background-color: #ddd; border-radius: 4px; } .thumb { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 8px; height: 40px; background-color: #333; border-radius: 4px; } ``` JavaScript: ``` const thumb = document.querySelector(".thumb"); const track = document.querySelector(".track"); let isDragging = false; thumb.addEventListener("mousedown", () => { isDragging = true; }); document.addEventListener("mousemove", (event) => { if (isDragging) { let mouseY = event.clientY; let trackRect = track.getBoundingClientRect(); let trackTop = trackRect.top + window.pageYOffset; let trackHeight = trackRect.height; let thumbHeight = thumb.offsetHeight; let thumbHalfHeight = thumbHeight / 2; let thumbTop = mouseY - trackTop - thumbHalfHeight; let percent = (thumbTop / (trackHeight - thumbHeight)) * 100; thumb.style.top = `${percent}%`; } }); document.addEventListener("mouseup", () => { isDragging = false; }); ``` 这份代码创建了一个环形滚动条,其中滑块可以在轨道上拖动。滑块的样式可以自定义,只需要修改 CSS 中 thumb 的样式即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值