Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2010, 14:00
Аспирант
Отправить личное сообщение для bookin Посмотреть профиль Найти все сообщения от bookin
 
Регистрация: 26.01.2010
Сообщений: 37

Drag&Drop не пашет помогите, я нуб, нужен совет
пытаюсь создать сролинг для фитра по цене никак не выходит толком сделать перемещение обьектов, обьект не успевает передвигаться за мышью, и есть косяк с минимальным и максимальным его позиционированием, может кто нить че нить подскажет хотя бы логику верную

вот наработки скрипта:

jQuery.fn.filter = function(options){

  var options = jQuery.extend({
//    containerID : 'filter',
	minCen : '0',
    maxCen : '10000',
    widthContainer: '195',
    heightContainer: '40'  
  },options);

  return this.each(function() {
      if(options.widthContainer || options.heightContainer){
         jQuery(this).width(options.widthContainer+"px");
         jQuery(this).height(options.heightContainer+"px");
      };


      var g = 'general';
      var i = 'internal';
      var l = 'left_button';
      var r = 'right_button';
      var p = 'progress';
      var h = jQuery(this).height();
      var dx = 0;
      var max = 0; 
      jQuery(this).prepend('<div id="'+g+'" style="height:'+h+'px;border:1px solid;background-color:#DADADA"><div id="'+i+'"><div id="'+p+'"></div><div id="'+l+'" ></div><div id="'+r+'"></div></div></div>');
      jQuery('#'+i+' > div').css('position','relative');
      jQuery("#"+i).css({height:h/2+'px',top:h/4 ,position:'relative', left:'5px', right:'5px', width:jQuery("#"+i).width()-10+'px'});
      jQuery("#"+p).css({height:h/4,top:jQuery("#"+i).height()/4,'background-color':'red'});
      jQuery("#"+l).css({float:'left',left:'0px',height:jQuery("#"+i).height(),width:jQuery("#"+i).height()/4,bottom:jQuery("#"+i).height()/2,'background-color':'#000'});
      jQuery("#"+r).css({float:'right',right:'0px',height:jQuery("#"+i).height(),width:jQuery("#"+i).height()/4,bottom:jQuery("#"+i).height()/2,'background-color':'#000'});

      jQuery("#"+l).mousedown(function(t){
                
           dx=t.clientX - parseInt(jQuery("#"+l).css("left"));
           max=parseInt(jQuery("#"+p).css('width'))-((parseInt(jQuery("#"+r).css('right')))+(parseInt(jQuery("#"+r).css('width')))+(parseInt(jQuery("#"+l).css('width'))));
           jQuery(this).css("background","#444444");
           jQuery(document).bind("mousemove",function(e){
               var left = e.clientX - dx;
                   if(max > left && left > 0){
                       $("#"+l).css("left",left+'px');
                   }
            });
      });
      jQuery("#"+g).mouseup(function(){
           jQuery(document).unbind('mousemove');
           jQuery("#"+l+", #"+r).css("background","#000");
      });
      
  });

};


вызов производиться вот так:
$('#filter').filter();


где #filter див в котором будет размещен скролинг

заранее всем благодарен
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен совет по click(function) Jomhan jQuery 6 07.12.2013 00:41
Нужен совет по jQuery. bublik Общие вопросы Javascript 2 03.08.2010 14:31