微信小程序点击图片全屏

  作为一个只懂简单HTML,jQuery,JS的web后台开发者,最近在学习小程序开发,现在将小程序的点击全屏功能的相关内容记录下来。如果有不对的地方或者有更简单的方法,请留言指教 0_0~

  .js 文件 

  data: {    
  one:"block", //判断图片全屏前是否隐藏
  ones:"none", //判断图片全屏后是否隐藏
  phoneheight :" " , //按比例缩放后图片高
  phoneWidth : " "  //按比例缩放后图片宽
  }

  .wxml 文件

  //全屏前

  <view class='first' style='display:{{one}}'>

    <image class='detailphone' src='{{urls}}' mode='widthFix' bindtap='phonefull'></image>

  </view>

  //全屏后

  <view class='firsts' style='display:{{ones}}'>
    <image style='width:{{phoneWidth}}rpx;height:{{phoneheight}}rpx;top:{{top}}rpx;left:{{left}}rpx' src='{{urls}}' class="asd" mode="aspectFit" bindtap='nophonefull' id="{{urls}}"     ></image>
  </view>
 

  当点击全屏前图片时,触发bindtap事件

  .js 文件 

  //点击照片全屏
  phonefull : function(){
    var originalWidth =0;    //图片原本的高
    var originalHeight=0;    //图片原本的宽
    var height = 0;      //可用屏幕高
    var width = 0;       //可用屏幕宽
    var orwidth = 0;
    var orheight =0;
 
  //在javascript语言中,this代表着当前的对象,它在程序中随着执行的上下文随时会变化。在进入phonefull点击事件函数后,对象已经发生了变化。所以已经不是原来的页面对象了。自然就没有了data属性,通过 var that = this 把this对象复制到临时变量that.这样就将原来的页面对象赋值给that了。
    var that = this ;
    wx.getImageInfo({      //.getImageInfo()获取 图片信息
      src: this.data.urls,     //要获取的图片信息的路径
      success: function (res) {   //获取图片成功后的操作
        originalWidth = res.width; 
        originalHeight = res.height;
        wx.getSystemInfo({      //获取设备的相关信息
          success: function (res) {
            height = res.windowHeight*2;    //res.windowHeight  可用屏幕高    小程序使用自适应单位 rpx,获取屏幕高以 px 为单位,以iPhone6为例,1rpx=0.5px
            width = res.windowWidth*2;       //res.windowWidth   可用屏幕宽
            orwidth = width / originalWidth ;       // 可用屏幕宽与图片原本宽的比
            orheight = height / originalHeight ;   //可用屏幕高与图片原本高的比
            //因为全屏需要将高宽全部显示出来,所以进行比例判断
            if (orwidth <= orheight) {
              that.setData({
                phoneheight: originalHeight * orwidth,
                phoneWidth: originalWidth * orwidth,
                top: (height - originalHeight * orwidth)/2,
                left: (width - originalWidth * orwidth)/2,
                one: "none",
                ones: "block"
              })
            } else {
              that.setData({
                phoneheight: originalHeight * orheight,
                phoneWidth: originalWidth * orheight,
                top: (height - originalHeight * orheight) / 2,
                left: (width - originalWidth * orheight) / 2,
                one: "none",
                ones: "block"
              })
            }
          },
          fail: function (res) {
            console.log("获取设备高宽失败");
          },
        })
      },
      fail: function (res) {
        console.log("获取图片高宽失败");
      },
    })
  },
 
  这时,通过one,ones的赋值,显示的就是全屏的图片啦,如果想退出全屏,点击全屏后的图片,触发nophonefull事件就可以啦  
 
  .js 文件
 
  //退出满屏
  nophonefull: function () {
    this.setData({
      one: "block",
      ones: "none"
    })
  }

 

  

转载于:https://www.cnblogs.com/ttqi/p/10245740.html

### 回答1: 在微信小程序中,可以使用 wx.previewImage API 实现图片的放大预览。这个 API 接受三个参数: - current:当前显示图片的链接 - urls:需要预览的图片链接列表 - success:接口调用成功的回调函数 示例: ``` wx.previewImage({ current: '', // 当前显示图片的http链接 urls: [], // 需要预览的图片http链接列表 success: function (res) { }, fail: function (res) { }, complete: function (res) { }, }) ``` 其中当前显示图片为urls数组中第一个。 在给img绑定bindtap事件时调用这个api即可 ### 回答2: 在微信小程序中,可以通过使用一些特定的组件和方法来实现点击图片放大的功能。 首先,可以使用`<image>`组件来展示图片。该组件有`bindtap`属性,可以用于绑定点击事件。在点击事件的回调函数中,可以获取到点击图片的信息。 接下来,可以使用`wx.previewImage`方法来放大图片。该方法接收一个对象作为参数,其中`current`属性指定当前显示图片的链接,`urls`属性是一个数组,包含了要展示的图片链接列表。通过调用该方法,用户点击图片时即可弹出一个新页面,展示被点击图片。 以下是一个示例代码: ```js // 在页面的 WXML 中 <image src="{{imageSrc}}" bindtap="showImage"></image> // 在页面的 JS 中 Page({ data: { imageSrc: 'http://www.example.com/image.jpg', // 图片链接 }, showImage: function() { wx.previewImage({ current: this.data.imageSrc, urls: [this.data.imageSrc], }) } }) ``` 通过上述代码,当用户点击图片时,会调用`showImage`方法,在该方法中使用`wx.previewImage`方法来放大显示图片。 注意,以上示例仅针对单张图片展示,如果需要在点击后放大多张图片,需要修改`urls`属性为包含多个图片链接的数组。 ### 回答3: 在微信小程序点击图片放大的实现可以通过以下步骤进行: 1. 在小程序的 wxml 文件中,使用 `<image>` 标签来展示图片。可以设置一个唯一的 id,方便后续的操作。例如:`<image id="myImage" src="yourImageURL" mode="aspectFit" bindtap="imageTap"></image>` 2. 在小程序的 wxss 文件中,需要给图片设置样式,以保证点击图片时可以全屏显示以及支持放大操作。例如:`.fullscreen-image {position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: black; z-index: 100;}` 3. 在小程序的 js 文件中,编写相应的事件处理函数。例如:在 `imageTap` 函数中添加以下代码来实现点击图片放大的效果。 ```javascript Page({ imageTap: function(event) { let imageId = event.currentTarget.id; wx.previewImage({ urls: [event.currentTarget.dataset.src], current: event.currentTarget.dataset.src }); } }) ``` 这样,当用户点击图片时,会触发 `imageTap` 函数,函数会使用 `wx.previewImage` 来实现图片的放大效果。通过设置 `urls` 参数为一个数组,可实现轮播放大多张图片。 综上,以上是实现微信小程序点击图片放大的简要步骤。当用户点击图片时,会触发对应的事件处理函数,并通过 `wx.previewImage` 函数来实现图片全屏放大效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值