前端使用scale属性结合CSS动态样式实现动态的图片缩放效果

废话不多说,直接上代码:

示例一,使用css动态样式结合scale进行src图片的缩放。

//结构层,使用动态属性配合计算属性来实现动态样式
 
//在计算属性中,使用return(item)来接收从结构层中传递的相关宽高值
computed: {
    elementStyle() {
      return (item) => {
        //注意此处1038以及518是设定的父容器的盒子大小                                                    
        const scale_x = 1038 / this.selectedItem.width;                                              
        const scale_y = 518 / this.selectedItem.height;
        const scale = scale_x < scale_y ? scale_x : scale_y;
        const rect_width = scale * this.selectedItem.width;
        const rect_height = scale * this.selectedItem.height;
        // const background_size_x = scale * this.selectedItem.width;
        // const background_size_y = scale * this.selectedItem.height;
        // const background_position_x = scale * this.selectedItem.width;
        // const background_position_y = scale * this.selectedItem.height;

        return {
          // backgroundSize: `${background_size_x}px ${background_size_y}px`,
          // backgroundPosition: `${background_position_x}px ${background_position_y}px`,
          width: `${rect_width}px`,
          height: `${rect_height}px`
        };
      }
    }
  },

示例二,使用css动态样式结合scale进行background背景图图片的缩放。

 
   
//在计算属性中 getelementStyle() { return (item) => { //注意此处188以及108是设定的父容器的盒子大小 const scale_x = 188 / item.width; const scale_y = 108 / item.height; const scale = scale_x < scale_y ? scale_x : scale_y; const rect_width = scale * item.width; const rect_height = scale * item.height; const background_size_x = scale * item.width;//此处width为整张背景图的宽度 const background_size_y = scale * item.height;//此处height为整张背景图的高度 const background_position_x = scale * item.x;//x为已知坐标值 const background_position_y = scale * item.y;//y为已知坐标值 return { backgroundSize: `${background_size_x}px ${background_size_y}px`, backgroundPosition: `${background_position_x}px ${background_position_y}px`, width: `${rect_width}px`, height: `${rect_height}px`, backgroundImage: `url(${item.url})` }; }; },

你可能感兴趣的:(前端,javascript,开发语言)