Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >yui如何在标签图像中不一定会指定它的大小?

yui如何在标签图像中不一定会指定它的大小?
EN

Stack Overflow用户
提问于 2013-03-06 04:26:54
回答 2查看 209关注 0票数 0

日安。

我使用脚本成像仪

脚本:

代码语言:javascript
运行
AI代码解释
复制
<img src="http://test.com/img/1362244329.jpg" id="yui_img" height="768" width="1024">

<script>
(function() {
    var Dom = YAHOO.util.Dom,
        Event = YAHOO.util.Event;

    var crop = new YAHOO.widget.ImageCropper('yui_img');
})();
</script>

结果:

,但是如果我没有指定图像大小,那么我将得到下一步(参见图像):

代码语言:javascript
运行
AI代码解释
复制
<img src="http://test.com/img/1362244329.jpg" id="yui_img">

结果:

,如果我指定了错误的图片大小,该窗口将增加图像的部分:

代码语言:javascript
运行
AI代码解释
复制
<img src="http://test.com/img/1362244329.jpg" id="yui_img" height="333" width="500">

结果:

如何使标记图像不一定会被指定其大小?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-06 06:24:03

首先,我想向您介绍一下YUI 3,因为不再支持YUI 2。您不应该使用YUI 2编写新代码。我为YUI 3编写了一个ImageCropper组件,它的工作方式类似于YUI库中的YUI 2版本:http://yuilibrary.com/gallery/show/imagecropper。由于它复制了YUI 2 ImageCropper所做的工作,所以它与旧版本有相同的问题。

当未指定图像大小时应如何处理

您获得一个小ImageCropper的原因是在获取图像之前创建小部件,因此浏览器还不知道它的大小。您可以做的是等待图像的onload事件。您可以监听该事件并在其触发后创建ImageCropper:

代码语言:javascript
运行
AI代码解释
复制
(function() {
  var Dom = YAHOO.util.Dom,
      Event = YAHOO.util.Event;

  var yui_img = Dom.get('yui_img');

  Event.addListener(yui_img, 'load', function () {
    var crop = new YAHOO.widget.ImageCropper(yui_img);
  });

})();

为什么ImageCropper不能处理大小错误的图像

无论是YUI 2 ImageCropper还是我的YUI 3版本都不能在图像没有合适大小的情况下工作。原因是两者都使用background: url() CSS样式来显示作物区域内的图像(小部件的非暗部分)。CSS背景不允许您使用调整大小/缩放的图像。

我计划在某个时候为YUI 3版本使用另一个策略来解决这个问题。但是,您需要记住,ImageCropper组件的设计是为了将裁剪坐标发送到服务器,以便实际裁剪图像。这意味着,如果将错误的大小设置为图像,则图像裁剪器使用其getCropCoords方法返回的坐标将不是与完整图像匹配的坐标。相反,您还必须向服务器发送您所使用的映像的大小,并进行额外的运算才能正确裁剪图像。

总之,您不应该使用大小错误的图像。您可以通过两种方法来修复图像的大小:

  1. 使用图像的HTML5 naturalWidthnaturalHeight属性。它们返回图像的真实大小,即使它被调整了大小。不幸的是,这些属性并不是所有浏览器都支持的。
  2. 用JS创建一个新图像,将其设置为与您正在使用的图像相同的src,侦听其load事件并获取该图像的大小。

就像这样:

代码语言:javascript
运行
AI代码解释
复制
 (function () {
  var Dom = YAHOO.util.Dom;

  var yui_img = Dom.get('yui_img'),
      new_img = new Image();

  new_img.onload = function () {
    yui_img.width = new_img.width;
    yui_img.height = new_img.height;

    // create the ImageCropper
  };
  new_img.src = yui_img.src;
}());

YUI3版本

您可以很容易地使用YUI3完成所有这些工作:

代码语言:javascript
运行
AI代码解释
复制
YUI().use('gallery-imagecropper', function (Y) {

  var img = Y.one('#yui_img');

  img.on('load', function () {
    var cropper = new Y.ImageCroper({
      srcNode: img,
      width: img.get('width'),
      height: img.get('height')
    });
    cropper.render();
  });

});
票数 3
EN

Stack Overflow用户

发布于 2013-03-08 06:10:36

输入密码。应该是

代码语言:javascript
运行
AI代码解释
复制
var cropper = new Y.ImageCropper({

你漏了一个字母"p“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15247355

复制
相关文章
laravel中数据库在哪个文件中配置
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113857.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
1.4K0
探讨 | 功耗应该在哪个corner 看?
为了寻到一个相对有说服性的答案,老驴试图查了T 跟A 的文档,在说到功耗计算时,都只简略得一带而过:在typical corner 看功耗,没有实验数据没有理论依据。又在谷歌上搜索了一番,找到了一些数据,同时请教了一些前辈,也得到了一些十分有用的信息。将这些信息揉和到一起,来探讨一下功耗应该在哪个corner 看?
老秃胖驴
2019/08/29
4.9K0
探讨 | 功耗应该在哪个corner 看?
Class 对象在执行引擎中的初始化过程
装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流,然后根据字节流创建 java.lang.Class 对象的过程。
老马的编程之旅
2022/06/22
1.1K0
Class 对象在执行引擎中的初始化过程
笔记06 - Class对象在执行引擎中初始化的过程
一个class文件被加载到内存中需要经过三个步骤:装载、链接、初始化。其中链接可以细分为验证、准备、解析三个步骤。
码农帮派
2020/12/29
8860
PHP获取指定函数定义在哪个文件中及行号
当调试开源的代码时,希望查看某个函数的定义,那么就需要定位其位置。特别是有的项目中,函数会有多个地方都有定义,那么如果我想知道当前调用的这个函数是在哪里定义的,可以用下面这个方法。
大江小浪
2019/02/22
1.2K0
Go中的面向对象 我算是彻底玩明白了
前面一篇,分享了Go中的函数和方法之间有什么区别、如何使用,今天来分享一篇关于面向对象的知识。
兔云小新LM
2023/08/09
1.3K0
Go中的面向对象 我算是彻底玩明白了
索引groupBox中的RadioButton到配置文件中,初始化自动索引——c#
如下代码,我在关闭窗体是把RadioButton的当前索引值存到ini文件中        ridioButtonIndex = 0; foreach (Control con in groupBoxClear.Controls) { if (con is RadioButton) { if ((con as RadioButton).Checked)
vv彭
2021/01/05
7310
索引groupBox中的RadioButton到配置文件中,初始化自动索引——c#
从ceph对象中提取RBD中的指定文件
之前有个想法,是不是有办法找到rbd中的文件与对象的关系,想了很久但是一直觉得文件系统比较复杂,在fs 层的东西对ceph来说是透明的,并且对象大小是4M,而文件很小,可能在fs层进行了合并,应该很难找到对应关系,最近看到小胖有提出这个问题,那么就再次尝试了,现在就是把这个实现方法记录下来 这个提取的作用个人觉得最大的好处就是一个rbd设备,在文件系统层被破坏以后,还能够从rbd提取出文件,我们知道很多情况下设备的文件系统一旦破坏,无法挂载,数据也就无法读取,而如果能从rbd中提取出文件,这就是保证了即使文件系统损坏的情况下,数据至少不丢失
用户2772802
2018/08/06
5.1K0
js中的对象
面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式。它将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。
用户4940950
2019/03/26
7.1K0
JavaScript 中的对象
JavaScript 中的对象,Object,可以简单理解成“名称 - 值”对(而不是键值对:现在,ES 2015 的映射表(Map),比对象更接近键值对),不难联想 JavaScript 中的对象与下面这些概念类似:
徐建国
2023/02/23
2.6K0
JavaScript 中的对象
python中的对象
对象:程序中使用的所有值都是对象,对象由内部属性和方法组成  这些方法会执行与数据相关的各种操作,前面操作列表类型数据时 我们已经用过了方法:
py3study
2020/01/13
1.2K0
Servlet中的对象
ServletRequest和ServletResponse是Servlet#service() 方法的两个参数,一个是请求对象,一个是响应对象,可以从ServletRequest对象中获取请求数据,可以使用ServletResponse对象完成响应。
星哥玩云
2022/09/14
5120
Servlet中的对象
Pandas中的对象
安装并使用PandasPandas对象简介Pandas的Series对象Series是广义的Numpy数组Series是特殊的字典创建Series对象Pandas的DataFrame对象DataFrame是广义的Numpy数组DataFrame是特殊的字典创建DataFrame对象Pandas的Index对象将Index看作不可变数组将Index看作有序集合
用户3577892
2020/06/11
2.8K0
关于监听输入功能应该在PlayerController还是Pawn中
PlayerController原本就是充当Pawn与玩家之间的接口,接受输入来控制Pawn。而且Pawn在关卡中可能会因为条件触发被销毁(如角色血量降低到0,死亡,那么就会销毁Pawn)。而在游戏进行过程中PlayerController却不会被销毁,一直都是同一个Controller。所以监听输入、分数记录等需要在游戏过程中一直存在的功能就应该放在PlayerController中,而不是Pawn中。所以最后应该是Controller来指示Pawn怎么做,Pawn执行,而不是将所有逻辑放在Pawn中。 而且,在多人游戏,或者游戏角色能够自由切换模型(例如躲猫猫模式)的游戏模式中,如果直接将输入监听功能集成在Pawn中,那么写起来会非常不方便。
太阳影的社区
2021/10/15
9770
Spring 中如何控制对象的初始化时间(延迟加载,强制先行加载)
当标注了@Lazy 注解时候,不会看到 init user… 的输出。只有当首次使用 User 类的时候,才会被初始化。
水货程序员
2018/11/13
3.6K0
Go中的面向对象(多态) 我算是彻底玩明白了
上一篇,我们分享了在Go中是如何实现面向对象,文章中对面向对象的三大特性中的继承、封装,做了一个理论和实践的总结,这一篇继续分享关于另外一个特性,那就是多态。
兔云小新LM
2023/08/09
9430
Go中的面向对象(多态) 我算是彻底玩明白了
我应该在什么时候使用 Apache Druid
许多公司都已经将 Druid 应用于多种不同的应用场景。请访问 使用 Apache Druid 的公司 页面来了解都有哪些公司使用了 Druid。
HoneyMoose
2021/07/24
7280
我应该在什么时候使用 Apache Druid
JavaScript中的内置对象--Number对象
JavaScript中的内置对象有以下6个: 1.Number对象 2.Boolean对象 3.Data对象 4.Math对象 5.String对象 6.Array对象 在JavaScript中,数字是一种基本的数据类型,同时JavaScript还支持Number这个对象,该对象是原始数值的包装对象。在必要的时候,JavaScript会自动地在原始数据和对象之间转换。 创建一个Number对象的2中不同方法: var num1=Number("123"); var num2=new Number("456"
八哥
2018/01/18
2.8K0
java中page的对象,page对象[通俗易懂]
page对象是JSP九大内置对象之一。JSP全称JavaServerPage,是一种动态网页技术标准,以Java语言作为脚本语言。在JSP中预先定义了九个内置对象,这个九个内置对象不需要声明就可以在脚本代码和表达式中任意使用,九个内置对象分别是:request、response、session、application、out、pageContext、config、page、exception。
全栈程序员站长
2022/09/18
2.5K0
java中page的对象,page对象[通俗易懂]
Vue中修改数组中的对象
Vue中修改数组中的对象
Java架构师必看
2021/09/14
4.9K0

相似问题

我应该在我的.csproj文件中修改哪个文件?

11

我应该在pyroCMS中更改哪个.htaccess文件?

40

我应该在哪个时区初始化QDateTime?

10

我应该在哪个源文件中定义函数

26

我应该在哪个对象上同步?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档