JS部分
 createSwiper1() {
var option = {
// slidesPerView: 5,
slidesPerView: 3,
centeredSlides:true,
};
if (this.state.newData.length > 2) {
option = {
loop: true,
loopedSlides: this.state.newData.length,
loopAdditionalSlides: 3,
slidesPerView: 'auto',
// slidesPerView: '3',
centeredSlides:true,
effect:'coverflow',
paginationClickable: true,
preventLinksPropagation: true,
observer: true,//修改swiper自己或子元素时,自动初始化swiper
observeParents: true,//修改swiper的父元素时,自动初始化swiper
coverflow:{
rotate: 0,
stretch: 85,
depth: 52,
modifier: 1,
slideShadows: true
}, nextButton: '.swiper-button-next',
prevButton: '.swiper-button-prev',
onTouchEnd: (swiper) => {
window.slideSwitchMp3();
}
}
}
var mySwiper = new Swiper('#'+ (this.props.place +'NewSwiperId'),option); mySwiper.on('tap',(swiper,e) => {
var that=this;
let item = this.state.newData[swiper.realIndex];
var buttonId=document.getElementById(this.props.place +'buttonId')
var buttonPrev=document.getElementById(this.props.place +'button-prev')
var buttonNext=document.getElementById(this.props.place +'button-next')
if(that.isDOMContains(buttonPrev,e.target,buttonId) ||that.isDOMContains2(buttonNext,e.target,buttonId)){
return false;
}else {
if (item) {
this.setState({newDetailShow: true, selectNewItem: item, eyeNum: 0, newDetailData: []}, () => {
if (item.infotype == 2) {
this.createPdf(item.pdfurl);
}
else {
this.fetchNewDetail();
}
this.props.parentCallback && this.props.parentCallback();
});
window.clickSoundEffect();
}
}
});
},

解决轮播按钮被覆盖
 isDOMContains:function(parentEle,ele,container){

     //判断一个节点是否是其子节点
//parentEle: 要判断节点的父级节点
//ele:要判断的子节点
//container : 二者的父级节点 //如果parentEle h和ele传的值一样,那么两个节点相同
if(parentEle == ele){
return true
}
if(!ele || !ele.nodeType || ele.nodeType != 1){
return false;
}
//如果浏览器支持contains
if(parentEle.contains){
return parentEle.contains(ele)
} //火狐支持
// if(parentEle.compareDocumentPosition){
// return !!(parentEle.compareDocumentPosition(ele)&16);
// } //获取ele的父节点
// var parEle = ele.parentNode;
// while(parEle && parEle != container){
// if(parEle == parentEle){
// return true;
// }
// parEle = parEle.parentNode;
// }
return false;
}, isDOMContains2:function(parentEle,ele,container){
console.log("parentEle",parentEle)
console.log("container",container)
//判断一个节点是否是其子节点
//parentEle: 要判断节点的父级节点
//ele:要判断的子节点
//container : 二者的父级节点 //如果parentEle h和ele传的值一样,那么两个节点相同
if(parentEle == ele){
return true
}
if(!ele || !ele.nodeType || ele.nodeType != 1){
return false;
}
//如果浏览器支持contains
if(parentEle.contains){
return parentEle.contains(ele)
} //火狐支持
// if(parentEle.compareDocumentPosition){
// return !!(parentEle.compareDocumentPosition(ele)&16);
// } //获取ele的父节点
// var parEle = ele.parentNode;
// while(parEle && parEle != container){
// if(parEle == parentEle){
// return true;
// }
// parEle = parEle.parentNode;
// }
return false;
},

render部分
 {
!this.state.newDetailShow &&
<div className="new-list" ref="newListId">
<div className="swiper-container " id={ this.props.place +'NewSwiperId'} style={{transform: this.props.place == 'top' ? 'rotateZ(180deg)': 'rotateZ(0deg)'}}> <div className="swiper-wrapper">
{
this.state.newData && this.state.newData.map((item,index) => {
return (
<div className="swiper-slide" key={index} data-i={index}>
<img src={item['titlepic'].toLowerCase().indexOf("http") !== 0 ? "http://" + item['titlepic'] : item['titlepic']} style={{transform: this.props.place == 'top' ? 'rotateZ(180deg)': 'rotateZ(0deg)'}} />
<div className="swiper-mask"></div>
</div>
)
})
}
{/*onClick={this.newslistclick.bind(item,index)}*/} </div>
<div className="container" id={ this.props.place +'buttonId'} >
<div className="swiper-button-next" id={ this.props.place +'button-next'} ></div>
<div className="swiper-button-prev" id={ this.props.place +'button-prev'}></div>
</div>
</div> </div>
}

react使用swiper,解决添加点击事件首位图片点击失效,解决轮播按钮被覆盖问题的更多相关文章

  1. JS: javascript 点击事件执行两次js问题 ,解决jquery绑定click事件出现点击一次执行两次问题

    javascript 点击事件执行两次js问题 在JQuery中存在unbind()方法,先解绑再添加点击事件,解决方案为: $(".m-layout-setting").unbi ...

  2. echarts 图的点击事件(含:点击重复触发的问题及其解决方法)

    今天用echarts的时候发现一个问题 鼠标指向不同地市触发一个事件展示该地区趋势图  但是但是后台中不管我第几次鼠标指向都会触发两次指向事件 现在贴出解决办法: 问题完美解决.但是为什么会调用两次, ...

  3. Swift 导航栏设置图片点击事件,图片蓝色的解决方案

    如果导航栏想做一个点击事件,正好是一个图片 我们可以直接这样: self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIIm ...

  4. pyqt的多Button的点击事件的槽函数的区分发送signal的按钮。

    关键函数:QPushButton的setObjectName()/objectName() 个人注解:按功能或者区域,将按钮的点击事件绑定的不同的槽函数上. from PyQt5.QtWidgets ...

  5. 在CTreeCtrl控件点击事件中获取点击的项

    网上搜了一下,有两种方法: 1.使用GetSelectedItem() HTREEITEM hItem = m_treeCtrl.GetSelectedItem(); CString strText ...

  6. javascript基础1 语法 点击事件 超链接带点击事件

    javascript ----------------------------------------------------------------------------------------- ...

  7. 点击DIV触发其他元素的点击事件(案例:点击type="radio" 的input 标签外层DIV,触发内部单选点击选中事件)

    方法一: 直接用找到对应dom元素调用.click()方法 $('.user_content').click(function(){ $(this).children()[0].click(); // ...

  8. 417 事件、监听、jQuery、轮播手动

    am:通用事件 a链接事件阻止默认行为 return false HTML元素大都包含了自己的默认行为,例如:超链接.提交按钮等.我们可以通过在绑定事件中加上return false来阻止它的默认行为 ...

  9. 点击轮播图片左右button,实现轮播效果

    点击左右button.实现图片轮播效果.js代码例如以下: $(function () { var index = 1; var pPage = 1; var $v_citemss = $(" ...

随机推荐

  1. List、Map、Set 三个接口,存取元素时,各有什么特点

    List与Set都是单列元素的集合,它们有一个功共同的父接口Collection. Set里面不允许有重复的元素, 存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法 ...

  2. (转)自定义ClassLoader ----可以加载第三方jar包

    package com.classloader.util; import java.io.IOException; import java.net.MalformedURLException; imp ...

  3. 尚学python课程---13、python基础语法

    尚学python课程---13.python基础语法 一.总结 一句话总结: legend2系统使我能够快速掌握一门语法,特别有用 pass 语句:空语句:是为了保持程序结构的完整性  :作用:比如: ...

  4. 创建自定义ssl证书用于https

    这里,不探究证书原理.我们要完成的任务是,自己充当CA,然后签出证书供服务器使用. 本次教程是在windows实现,实验之前,确认自己的电脑中有openssl程序.如果没有,博主帮你准备了一个:htt ...

  5. NEO4J全文检索架构

    NEO4J全文检索架构 一.有大量存量数据(亿级以上)(并长期有增量数据进入) 二.无大量存量数据或者少量存量数据(或全部为增量数据) 三.架构方案选择优先级 以下方案,是根据实践总结的基于NEO4J ...

  6. linux流量监控iftop命令安装详解

    iftop跟nload差不多,也是捕获网卡流量的命令,nload的安装见之前发布的教程:http://www.cnblogs.com/catlee/p/5703541.html 开始安装.本文以cen ...

  7. 2019-8-31-dotnet-获取程序所在路径的方法

    title author date CreateTime categories dotnet 获取程序所在路径的方法 lindexi 2019-08-31 16:55:58 +0800 2019-03 ...

  8. 解决Pycharm无法导入包问题 Unresolved reference

    在pycharm中设置source路径 file–>setting–>project:server–>project structure 将放package的文件夹设置为source ...

  9. LoadRunner穿过防火墙运行Vuser和进行监控

    LoadRunner穿过防火墙运行Vuser和进行监控   LoadRunner穿过防火墙进行测试,总结下来是2个方法:1. 在controller和Vuser的LAN中的防火墙都打开54345端口即 ...

  10. python+selenium中webdriver相关资源

    Chrome chrome的webdriver :  http://chromedriver.storage.googleapis.com/index.html chrome的webdriver需要对 ...