在获取文字识别数据之后,对数据进行wx:for循环加了边框如图效果:

需求:点击不同边框获取不同文字,再次点击取消选中;选中背景为#999;

<view wx:for="{{img_dataVal}}" wx:for-item="item" class='text_list {{item.is_hide?"change_bg":""}}' style='left:{{item.location.left/bili}}px;top:{{item.location.top/bili}}px;width:{{item.location.width/bili}}px;height:{{item.location.height/bili}}px' data-numid="{{index}}" bindtap='get_numid'>

  </view>

当然是通过三目运算符了,但是在对其进行操作后,所有样式都会改变;所有我们需要一个唯一的属性来判断其是否被选中;

img_dataVal的数据结构为

因为是第三方接口无法添加多余返回数据属性,那只好自己添加啦;

具体这样操作:每次点击时我在img_dataVal的每条数据里新增一个is_hide属性;

if (this.data.img_dataVal[numid].is_hide){
this.data.img_dataVal[numid].is_hide = !this.data.img_dataVal[numid].is_hide;
}else{
this.data.img_dataVal[numid].is_hide = true;
}

不要忘了存储数据:

this.setData({ img_dataVal: this.data.img_dataVal})

每次点击时进行判断,然后在dom中对is_hide进行状态进行判断,来动态添加class名

class='text_list {{item.is_hide?"change_bg":""}}'

实现效果为:

再次点击会取消选中状态;

因为拍照和选择相册等,图片尺寸不一致;

怎么让图片进行全屏放置,又不失真呢,当然就是等比缩放了;

wx.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success: function (res) {
that.setData({ img_url: res.tempFilePaths[0] })
wx.getImageInfo({
src: res.tempFilePaths[0],
success: function (res) {
that.setData({ img_w: res.width})
that.setData({ img_h: res.height})
that.setData({ bili: res.width / wx.getSystemInfoSync().windowWidth})
that.setData({ wx_width:wx.getSystemInfoSync().windowWidth })
}
})

选择图片以后获取屏幕宽度wx.getSystemInfoSync().windowWidth,图片宽度设置为屏幕宽度;

计算图片实际宽度与屏幕宽度的比例,根据这个比例来控制高度等信息。

思路给你们,操作在于你们了。

wx:for修改样式的更多相关文章

  1. 微信小程序弹框wx.showModal如何修改样式

    由于官方API提供的显示模态弹窗,只能简单地显示文字内容,不能对对话框内容进行自定义,欠缺灵活性,所以自己从模态弹窗的原理角度来实现了自定义的模态对话框. wx.showModal修改样式后的效果,如 ...

  2. JavaScript基础之DOM修改样式

    1.获取或设置元素的内容:3个属性:   1. innerHTML: 获取或设置元素开始标签到结束标签之间的所有HTML代码原文.      何时使用:只要获得完整的html代码原文时      优化 ...

  3. 【写一个自己的js库】 5.添加修改样式的方法

    1.根据id或class或tag修改样式,样式名是-连接格式的. function setStyleById(elem, styles){ if(!(elem = $(elem)) return fa ...

  4. 总结:js中4类修改样式的方法

    前言 最近在写一个扩展右键菜单的插件,既然是插件,想着一步到位,把相关的style样式设置都丢进js文件中,直接加载一个js文件便可以使用该插件,所以今天就研究了下js批量的插入样式的方法,即addS ...

  5. 微信小程序 JS动态修改样式

    微信小程序这个坑啊,js动态修改样式,我们并不能用js或者jq 轻轻松松一行代码搞定.或者用removeClass addClass 来修改样式. 以下是一种动态修改样式的方法,原理是绑定数据,然后动 ...

  6. js修改样式表规则

    <div>adasfsfs</div> <div id="div">adasfsfs</div> <div>adasfs ...

  7. vue2.0 通过v-html指令渲染的富文本无法修改样式的解决方案

    在最近的vue项目中遇到的问题:v-html渲染的富文本,无法在样式表中修改样式: 比如下面的代码,div.descBox里面的p标签的color样式并不是"color: blue" ...

  8. vue 使用v-html指令渲染的富文本无法修改样式的解决方法

    最近的vue项目中遇到的问题:v-html渲染的富文本,无法在样式表中修改样式 解决方法: 把需要添加或重置的样式单独放在一个style标签里, 定义为全局样式,代码如下: <style> ...

  9. JQuery动态修改样式

    JQuery动态修改样式 SetStyle(); function SetStyle() { $(".toolbar").remove(); $(".placeholde ...

随机推荐

  1. apache 安装/mod_dir.so: undefined symbol: apr_array_clear

    apache 安装好后 启动出错: httpd: Syntax error on line 143 of /usr/local/apache2/conf/httpd.conf: Cannot load ...

  2. js生成json数据

    <script src="~/static/js/jquery.min.js"></script><script type="text/ja ...

  3. jQuery和js获取select元素的选中项value?

    1.jQuery方式获取:$("#test").val(); 2.js方式获取:document.getElementById("test").value;

  4. dos攻击命令

    net user //查看有哪些用户 net start //查看开启了哪些服务项目 net send ip "文本信息" //向对方发送消息(如果对方关了信使有可能会收不到) n ...

  5. Python3常用学习网站总结(随时更新)

    Python资源大全 http://python.jobbole.com/84464/ https://github.com/jobbole/awesome-python-cn   scrapy: h ...

  6. try catch finally 中包含return的几种情况,及返回结果

    当当当,兴致勃勃的第二篇博客,散花~ 下面是正题(敲黑板) 第一种情况:在try和catch中有return,finally中没有return,且finally中没有对try或catch中要 retu ...

  7. python中html解析-Beautiful Soup

    1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...

  8. c#使用GDI+简单绘图(二)

    // Create the in-memory bitmap where you will draw the image. // This bitmap is 300 pixels wide and ...

  9. Pycharm小技巧--使用正则进行查找和批量替换

    分享一个Pycharm中使用正则的分组匹配来进行批量替换的小技巧 例如,我现在需要把HTML文件中的静态文件得到路径全部替换为django模板引用路径的格式 修改为类似这样的格式: {% static ...

  10. 【机器学习实战】第7章 集成方法 ensemble method

    第7章 集成方法 ensemble method 集成方法: ensemble method(元算法: meta algorithm) 概述 概念:是对其他算法进行组合的一种形式. 通俗来说: 当做重 ...