- 31
- 0
题目描述
项目中需要将长图实现移动端指尖滑动缩放,但所放位置与实际放大位置有偏差,比如缩放的是图片上部,实际缩放到的是图片中部,偏差很大,而且出现图片最初不能滑动的问题。
问题出现的环境背景及自己尝试过哪些方法
用的vue-awesome-swiper@2.6.7依赖的是swiper@3.1.3,没有弄太明白图片最开始为什么不能滑动的问题,但通过监听用户的scroll事件,给swiper的父元素添加
content.setAttribute('style', '-webkit-overflow-scrolling: touch;')
这个属性勉强解决了,但效果也不是太好,需要用户先滑动一下才能流畅滑动
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
<template>
<div class="productPage">
<my-title :titleData="titleData"></my-title>
<div class="content">
<div class="contentBox" ref="contentBox">
<swiper :options="swiperOption" ref="mySwiper" style="height: 100%;">
<swiper-slide>
<div class="swiper-zoom-container" data-swiper-zoom="3">
<img :src="$route.params.url === undefined ? '' :require('../../assets/knowledgeQuiz/' + $route.params.url)">
</div>
</swiper-slide>
</swiper>
</div>
</div>
</div>
</template>
<script>
import myTitle from '../activity/components/title'
import 'swiper/dist/css/swiper.css';
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
name: 'productPage',
data () {
return {
titleData: { // 头部信息
leftHome: 0,
leftArrow: 1,
rightContent: 1
},
pageData: '',
// imgPath: ''
isActivety: false,
swiperOption: {
zoom: true
}
}
},
components: {
myTitle,
swiper,
swiperSlide
},
created () {
this.$loading.hide()
},
mounted () {
this.init()
},
methods: {
init (id) {
let content = document.querySelector('.content')
content.addEventListener('scroll', () => {
content.setAttribute('style', '-webkit-overflow-scrolling: touch;')
})
}
}
}
</script>
<style lang="less" scoped>
.productPage{
display: flex;
flex-direction: column;
height: 100%;
.content{
height: 100%;
overflow: scroll;
}
.contentBox{
img{
display: block;
width:100%;
}
}
}
</style>
你期待的结果是什么?
希望能解决两个问题:
1.初始化swiper的时候不能滑动
2.放大图片的时候放大的位置有偏差
- 共 0 条
- 全部回答
-
淡淡伤〝微微凉 普通会员 1楼
Swiper是一个用于制作轮播图的JavaScript库,它默认会在每个子页面都自动缩放图片。如果你想要在缩放位置有偏差,你可能需要在Swiper的options对象中设置缩放选项。以下是一个示例:
javascript var slider = new Swiper('.slider', { slideClass: 'slide', responsive: true, pagination: false, mousewheel: true, onSlideChangeStart: function() { // 在缩放位置有偏差时的处理代码 }, onSlideChangeEnd: function() { // 在缩放位置有偏差时的处理代码 } });在这个示例中,我们设置了滑块的缩放选项为
responsive: true,这会使得Swiper在屏幕尺寸改变时自动缩放图片。我们还设置了mousewheel: true,这会使得用户可以通过鼠标滚轮来控制滑块的缩放。最后,我们设置了onSlideChangeStart和onSlideChangeEnd函数,当用户在缩放位置有偏差时,这两个函数会被调用。注意,这只是一个基本的示例,你可能需要根据你的具体需求来调整这些选项。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
