Преобразувам сайт за клиент от фреймсет към divs. Една функция, която клиентът има, е странична лента, която може да бъде преоразмерена в зависимост от това колко място се нуждае от потребителя. Използвайки рамки, преоразмеряването на тази странична лента беше вградено. Имам обаче известни затруднения да емулирам тази възможност в jQuery.
Не желая да използвам jQuery UI, за да направя това, нямам нужда от цялата допълнителна функционалност, която UI пакетът предоставя, и бих предпочел просто да напиша няколко реда код, за да се погрижа за това.
Трябва само да преоразмеря в хоризонтална равнина, вертикалните размери са фиксирани.
В момента имам решение, което (донякъде) работи. Страничната лента div може да бъде преоразмерена, но само ако потребител щракне върху преоразмеряемия div, плъзне мишката и след това щракне отново върху div (за да премахне събитието mousemove).
Опитът, който искам, е следният: Потребителят задържа курсора на мишката върху div с възможност за промяна на размера, натиска бутона на мишката надолу, след това плъзга div, за да стане по-голям/по-малък, и пуска бутона.
Проблемът, който имам, е следният: Ако потребител щракне върху моя div с възможност за промяна на размера, след което се опита да го плъзне, за да го направи по-малък/увеличен, мишката става иконата „не“ и има прозрачна версия на моя div, която е наркотик наоколо с мишката.
Може би това е по-добре обяснено, като проверите моя код:.
$(document).ready(function() {
var i = 0;
$('#dragbar').mousedown(function(){
$('#mousestatus').html("mousedown" + i++);
$(document).mousemove(function(e){
$('#position').html(e.pageX +', '+ e.pageY);
$('#sidebar').css("width",e.pageX+2);
})
console.log("leaving mouseDown");
});
$(document).mouseup(function(){
$('#clickevent').html('in another mouseUp event' + i++);
$(document).unbind('mousemove');
});
});
и HTML:
<div id="header">
header
<span id="mousestatus"></span>
<span id="clickevent"></span>
</div>
<div id="sidebar">
<span id="position"></span>
<div id="dragbar">
</div>
sidebar
</div>
<div id="main">
main
</div>
<div id="footer">
footer
</div>
Ето една временна уеб страница с работещо основно оформление:
http://pastehtml.com/view/1crj2lj.html
Проблемът може да се види, ако се опитате да преоразмерите нещото с надпис "странична лента", като използвате кафявата лента.