在网页中创建由鼠标滚轮驱动的“放大”和“缩小”

时间:2011-11-24 16:42:16

标签: jquery html ruby-on-rails html5 javascript-events

我正在寻找类似autocad ......或solidworks

的体验

基本上是内容大小(保持宽高比)Xsize * Ysize

并放大特定区域

我将ruby / rails作为我的首选语言

2 个答案:

答案 0 :(得分:2)

查看http://html5readiness.com/源代码。你可以在中间部分做到这一点。

这是从Paul Irish HTML5Readiness网站复制的:

jQuery(document).bind('DOMMouseScroll mousewheel', function(e, delta) {

  var newval,
      num = $('div.css-chart p').css('padding-left');

  delta = delta || e.detail || e.wheelDelta;

  if (delta > 0 || e.which == 38) {
      newval = parseFloat(num) + 10 * (e.shiftKey ? .1 : 1);
  } else if (delta < 0 || e.which == 40) {
      newval = parseFloat(num) - 10 * (e.shiftKey ? .1 : 1);
  } else {
      return true;
  }

  $('style.padleft').remove();
  $('<style class="padleft"> div.css-chart p { padding-left : '+newval+'px; } div.css-chart p i { width : '+2*newval+'px; } </style>')
      .appendTo(document.body);

  e.preventDefault();
});

答案 1 :(得分:1)

另一个选项是放大指定元素的Zoom.js(http://lab.hakim.se/zoom-js/),或Presenteer.js(http://willemmulder.github.com/Presenteer.js/),它可以将视口中的指定元素居中,也可以进行CSS3转换(例如考虑这些因素的旋转,翻译。