Jump to content
php.lv forumi
  • 0

mainīt width pēc nepieciešamības


anonīms

Question

Sveiki. Tātad ir menu

<div id="#block-menu_block-1">
<ul>
<li><a>..</a></li>
<li><a>..</a></li>
<li><a>..</a></li>
</ul>
</div>

 

ar nenoteiktu skaitu li un nenoteiktu platumu (atkarībā no a href nosaukuma garuma). Ir tā, ka menu aiziet jau divās līnijās.

Kā varētu panākt to, ka attiecīgi, ja pirmajā rindā ir 9 <li><a>, tad atiecīgi viņiem visiem width tiek dalīts tā, lai būtu pa visu garo menu, tb neatstājot brīvu vietu?

 

$(function(){
//var menu_block = $("menu-block-1")
var menu_block_w = $("div.menu-block-1").width();
var right_el_left = 0;

// search first el from secongary 

$("#block-menu_block-1 li a").each(function(){
	//var offset = $(this).offset();
	//console.log(offset.left);

	// statiski $("#block-menu_block-1 li a").width(101);

});
})

 

statiskais variants šoreiz neder :[

Edited by anonīms
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

$(function(){
var menu_block_w = $("div.menu-block-1").width(); //kāpēc 980, ja ir 968?
var menu_block_w = 968; // uzliekam manuāli


// skaitīsim kopējo child width
 var sum = 0;
$("#block-menu_block-1 li a").each(function(){
   sum += $(this).width();
	//$("#block-menu_block-1 li a").width(101);
});

 //alert(menu_block_w);
//alert(sum);

   if (menu_block_w >= sum) // izrēķinam cik + vajag
   {
   var need_menu_width = menu_block_w-sum;
   //alert('wops! vajag pielikt :X');
   alert(need_menu_width);
   }

})

 

pagaidām izskatās kaut kas šāds. Cik nu pareizi nepateikšu, jo js nav tā stiprākā puse

Link to comment
Share on other sites

  • 0

Nu pašlaik variants ir šāds un problēma ir sekojoša. Viņš saskaita visus li kas ir, bet kaut kā ir nepieciešams iegūt tikai tos, kas atrodas pirmajā rindā. Kā to varētu panākt?

$(function(){

var menu_block_w = $("div.menu-block-1").width(); //kāpēc 980, ja ir 968?
var menu_block_w = 968; // uzliekam manuāli

// skaitīsim kopējo child width
 var sum = 0;
 var menu_childs = 0;
$("#block-menu_block-1 li a").each(function(){
 sum += $(this).width();
 menu_childs = menu_childs+1; // (15) vajag kaut kā dabūt tikai pirmo rindu nevis visus
});

   if (menu_block_w >= sum) // pietrūkst un vajag pielikt
   {
   alert(menu_childs);
   var need_menu_width = menu_block_w-sum;
   //alert('wops! vajag pielikt :X');
   alert(need_menu_width);
   }

})

Link to comment
Share on other sites

  • 0

$(function(){

var menu_block_w = $("div.menu-block-1").width(); //kāpēc 980, ja ir 968?
var menu_block_w = 968; // uzliekam manuāli


// skaitīsim kopējo child width un skaitu
 var childs_width = 0;
 var childs_count = 0;
$("#block-menu_block-1 li a").each(function(){
var offset = $(this).offset();
if( offset.top != 333) // tikai pirmo rindu
{
childs_width += $(this).width();
 childs_count = childs_count+1;
}
  //console.log(offset.top);
});

 //alert(childs_width);
 //alert(childs_count);


   if (menu_block_w >= childs_width) // pietrūkst un vajag pielikt
   {
       var need_menu_width = menu_block_w-childs_width; // cik px vajag aizstāt
       // liekam papildus px
       $("#block-menu_block-1 li a").each(function(){
       	var offset = $(this).offset();
         if( offset.top != 333) // tikai pirmo rindu
         {

         }
       }


   //alert(need_menu_width);
   }

})

 

nu es izveidoju drusku savādāk, bet jebkurā gadījumā pabeigts vēl nav un esmu atvērts ieteikumiem.

Link to comment
Share on other sites

  • 0

Tāds nu laikam varētu būt iznākums.

$(function(){

     var menu_block_w = $("div.menu-block-1").width(); //kāpēc 980, ja ir 968?
     //var menu_block_w = 986; // uzliekam manuāli


     // skaitīsim kopējo child width un skaitu
     var childs_width = 0;
     var childs_count = 0;
$("#block-menu_block-1 li a").each(function(){
     var offset = $(this).offset();

     if( offset.top != 333) // tikai pirmo rindu
     {
     childs_width += $(this).width();
     childs_count = childs_count+1;
     }
});



   if (menu_block_w >= childs_width) // pietrūkst un vajag pielikt
   {
         // cik katram vajag?
         var need_menu_width = menu_block_w-childs_width; // cik px vajag aizstāt
         var give_menu_width = Math.round(need_menu_width/childs_count);

         // liekam papildus px
         $("#block-menu_block-1 li a").each(function(){
             var offset = $(this).offset();
             if( offset.top != 333) // tikai pirmo rindu
             {
             var how_much = $(this).width()+give_menu_width;
             $(this).width(how_much); 
             }
         });

   }

})

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...